Launching applications is an expensive operation due to the resources used during initialization. This problem may be further aggravated with the popularity of low-cost devices which may tend to have more hardware constraints than traditional desktops. In the past, solutions like caching have been used to speed up application launches. While these solutions improve the launch time of applications, they may not be sufficient to give users adequate response or desired performance and may be less effective when cache space is limited.